﻿using System;
using System.Collections.Generic;
using System.Text;
using QLPMT_DAO;
using QLPMT_DTO;
namespace QLPMT_BUS
{
  public class BenhNhanBUS
    {
      // thong tin benh nhan theo ma kham benh
      public string GetHoTenBenhNhanTheoMaKhamBenh(string ma)
      {
          return new BenhNhanDAO().GetThongTinBenhNhanTheoMaKhamBenh(ma).Hoten;
      }
      // Danh sach benh nhan dang ki kham cung ngay
      public List<BenhNhan> DanhSachBenhNhanKhamCungNgay(DateTime ngay)
      {
      
          return new BenhNhanDAO().GetBenhNhanTheoNgayKham(ngay);
          

      }
      public List<BenhNhan> MoiTiepNhan(DateTime ngay)
      {
          return new BenhNhanDAO().GetBenhNhanVuaTiepNhan(ngay);
      }
      public List<BenhNhan> GetAll()
      {
          return new BenhNhanDAO().GetAll();
      
      }
      // Lấy mã bệnh nhân
      public string MaBenhNhanMoi()
      {
          List<BenhNhan> list = new List<BenhNhan>();
          list=new BenhNhanBUS().GetAll();
          BenhNhan temp=new BenhNhan();
          foreach(BenhNhan X in list)
          {
              temp.Mabenhnhan=X.Mabenhnhan;
          }
          string ma = "";
          if (temp.Mabenhnhan!=null)
          {
              char[] chuoi = temp.Mabenhnhan.ToCharArray(2, temp.Mabenhnhan.Length - 2);
              string chuoima = "";
              foreach (char charX in chuoi)
              {
                  chuoima = chuoima + charX;
              }
              int sobenhnhan = int.Parse(chuoima) + 1;
              ma = "BN" + sobenhnhan.ToString();
          }
          else
              ma = "BN1";
          return ma;
      }
 
      public Boolean ThemBenhNhanMoi(string ma, string hoten, string diachi, string gioitinh, int namsinh, DateTime Ngay)
      {
          Boolean flag = true;
          try
          {
              int gioitinhbn;
              if (gioitinh == "Nữ")
                  gioitinhbn = 1;
              else
                  gioitinhbn = 0;
              BenhNhan benhnhan = new BenhNhan(ma, hoten, gioitinhbn, namsinh, diachi, Ngay);
              new BenhNhanDAO().ThemBenhNhanMoi(benhnhan);
              return true;
          }
          catch
          {
              flag=false;
          }
          return flag;
      }
      //Tim benh nhan
      public List<BenhNhan> Search(string ten, string diachi, string strnamsinh, string maloaibenh, string trieuchung, DateTime ngaybt, DateTime ngkt)
      {
          List<BenhNhan> list = new List<BenhNhan>();
          try
          {
              int namsinh = int.Parse(strnamsinh);
              list= new BenhNhanDAO().Search(ten, diachi, namsinh, maloaibenh, trieuchung, ngaybt, ngkt);
          }
          catch
          {
              int namsinh = 0;
                list= new BenhNhanDAO().Search(ten, diachi, namsinh, maloaibenh, trieuchung, ngaybt, ngkt);
          }
          return list;
      }
    }
}
